fb3c48464d48ff6792bcac52b791d59b248a9818,src/org/exist/xquery/functions/xmldb/XMLDBSetResourcePermissions.java,XMLDBSetResourcePermissions,evalWithCollection,#Collection#Sequence[]#Sequence#,77
Before Change
Resource res = collection.getResource(args[1].getStringValue());
if (res != null) {
UserManagementService ums = (UserManagementService) collection.getService("UserManagementService", "1.0");
ums.setPermissions(res, new Permission(args[2].getStringValue(), args[3].getStringValue(), ((IntegerValue) args[4].convertTo(Type.INTEGER)).getInt()));
} else {
throw new XPathException(getASTNode(), "Unable to locate resource "+args[1].getStringValue());
}
After Change
if (res != null) {
UserManagementService ums = (UserManagementService) collection.getService("UserManagementService", "1.0");
String user = args[2].getStringValue();
String group = args[3].getStringValue();
int mode = ((IntegerValue) args[4].convertTo(Type.INTEGER)).getInt();
if (null == user || 0 == user.length())
throw new XPathException(getASTNode(), "Needs a valid user name, not: "+user);
if (null == group || 0 == group.length())
throw new XPathException(getASTNode(), "Needs a valid group name, not: "+group);
// Must actually get a User object for the Permission...
Permission p = new Permission(user, group, mode);
User u = ums.getUser(user);
if (null == u)
throw new XPathException(getASTNode(), "Needs a valid user name, not: "+user);
p.setOwner(u);
ums.setPermissions(res, p);